<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
<meta name="keywords" content="天地图"/>
<title>天地图－地图API－范例－地图点击事件</title>
	<script type="text/javascript" src="http://api.tianditu.gov.cn/api?v=4.0&tk=0bfd57475542d76f12578a701d2a70ab"></script>
	<style type="text/css">body,html{width:100%;height:100%;margin:0;font-family:"Microsoft YaHei"}#mapDiv{width:100%;height:100%}input,b,p{margin-left:5px;font-size:14px}</style>
	<script>
	var map;
	var zoom = 17;
	var polygon, polygonclick;
    var marker;
    var newControl;
	function onLoad()
	{
		map = new  T.Map('mapDiv',{datasourcesControl: true});
		//创建对象
        var ctrl = new T.Control.MapType();
         //添加控件
         map.addControl(ctrl);
		newControl = new T.Control({position: T_ANCHOR_BOTTOM_RIGHT});
            newControl.onAdd = function (map) {
                var container = document.createElement("div");
                var zicsstext = "font-size:14px;border:solid 2px white;background:#fff;padding:4px;line-height:15px;cursor:pointer;color:black";
                <!--var zocsstext = "font-size:14px;border:solid 2px white;background:#fff;padding:4px;line-height:15px;cursor:pointer;color:black";-->
                this.normalButton = createButton("定位", "定位", 'a', container, zicsstext);
                <!--this.satelliteButton = createButton("卫星地图", "卫星地图", 'b', container, zocsstext);-->
                <!--this.hybridButton = createButton("卫星混合", "卫星混合", 'c', container, zocsstext);-->
                this.normalButton.onclick = normal;
                <!--this.satelliteButton.onclick = satellite;-->
                <!--this.hybridButton.onclick = hybrid;-->
                return container;
            };

            newControl.onRemove = function (map) {
                //移除控件时要释放
                delete  this.zoomInButton;
                delete  this.zoomOutButton;
            }

            map.addControl(newControl);
	}
    function normal() {

    }
	function getLocation(clickLng,clickLat){
		//定位，获取位置
		var lo = new T.Geolocation();
		fn = function (e) {
			if (this.getStatus() == 0){
				//map.centerAndZoom(e.lnglat, 15)
				//alert("获取定位坐标："+e.lnglat.lat + "," + e.lnglat.lng)

				//var marker = new T.Marker(e.lnglat);
				//map.addOverLay(marker);
				//window.androidObject.androidMapClick(e.lnglat.getLng(),e.lnglat.getLat());
				
                var u = navigator.userAgent;
                 var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
                 var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
                 
                 if (isAndroid)
                 {
                     window.androidObject.androidMapClick(clickLng,clickLat,e.lnglat.lng,e.lnglat.lat);
                 }
                 else if (isiOS)
                 {
                     window.webkit.messageHandlers.AppModel.postMessage({body: 'call js alert in js'});
                 }
			}
			/*
			if(this.getStatus() == 1){
				map.centerAndZoom(e.lnglat, e.level)
				//alert("获取定位坐标："+e.lnglat.lat + "," + e.lnglat.lng)
				var marker = new T.Marker(e.lnglat);
				map.addOverLay(marker);
			}
			*/
		}
		lo.getCurrentPosition(fn);
	}


        function addMarkerClick(marker) {
            //移除标注的点击事件，防止多次注册
            removeMarkerClick(marker);
            //注册标注的点击事件
            marker.addEventListener("click", MarkerClick);
        }

        function removeMarkerClick(marker) {
            //移除标注的点击事件
            marker.removeEventListener("click", MarkerClick);
        }

        function MarkerClick(e) {
            //alert(e.lnglat.getLng() + "," + e.lnglat.getLat());
			//点击了某个标注，调用iOS或Android方法，把集合位置传递
			//window.androidObject.androidMarkerClick(e.lnglat.getLng()+"",e.lnglat.getLat()+"");
            var u = navigator.userAgent;
                            var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
                            var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
                            
                            if (isAndroid)
                            {
                               window.androidObject.androidMarkerClick(e.lnglat.getLng()+"",e.lnglat.getLat()+"");
                            }
                            else if (isiOS)
                            {
                                
                                window.webkit.messageHandlers.AppModel.postMessage({'operation':'clickPic','JingDu':e.lnglat.getLng()+"",'WeiDu':e.lnglat.getLat()+""});
                            }
        }
	
	function addMapClick()
	{
		removeMapClick();
		map.addEventListener("click",MapClick);
	}

	function removeMapClick()
	{
		map.removeEventListener("click",MapClick);
	}
	
	function MapClick(e)
	{
		alert(e.lnglat.getLng()+","+e.lnglat.getLat());
		//addIconMarker(e.lnglat.getLng(),e.lnglat.getLat(),"http://api.tianditu.gov.cn/img/map/markerA.png");
		//addIconMarker(e.lnglat.getLng(),e.lnglat.getLat(),"images/markerA.png");
        var u = navigator.userAgent;
                        var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
                        var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
                        
                        if (isAndroid)
                        {
                                  window.androidObject.androidMapClick(e.lnglat.getLng(),e.lnglat.getLat());
                        }
                        else if (isiOS)
                        {
                            
                            window.webkit.messageHandlers.AppModel.postMessage({'operation':'clickPoint','JingDu':e.lnglat.getLng()+"",'WeiDu':e.lnglat.getLat()+""});
                        }

	}

	function addMarker(lng,lat){
		//alert("js方法调用");
	     //创建标注对象
	     //map.centerAndZoom(new T.LngLat(lng, lat), zoom)
            var marker = new T.Marker(new T.LngLat(lng, lat));
            //向地图上添加标注
            map.addOverLay(marker);
	}
	function androidTest(){
		//alert("js方法调用");
	}

	function addIconMarker(lng,lat,url){
      //  alert("js addIconMarker方法调用");
	  		//创建图片对象
            var icon = new T.Icon({
                iconUrl: url,
                iconSize: new T.Point(15, 16),
                iconAnchor: new T.Point(7, 16)
            });
             //向地图上添加自定义标注
            var marker = new T.Marker(new T.LngLat(lng, lat), {icon: icon});
            map.addOverLay(marker);

            addMarkerClick(marker);//给标注添加点击事件
	}

	function onRange(params){
		//alert(params)
		var points = [];
		var lnglatarr = params.split(';');
		//alert(lnglatarr);
		for(var i=0, len = lnglatarr.length; i < len; i++){

			var lnglat = lnglatarr[i].split(',');
			var lng = lnglat[0];
			//alert(lng);
			var lat = lnglat[1];
			//alert(lng + ','+lat)
			if(i == (len-1)){
				//alert('centerZoom'+'lng='+lng+' lat='+lat);
				//map.centerAndZoom(new T.LngLat(lng+'', lat+''), zoom);
			}

			points.push(new T.LngLat(lng, lat));
			

		}
        //创建面对象
        polygon = new T.Polygon(points,{
            color: "blue", weight: 3, opacity: 0.5, fillColor: "#FFFFFF", fillOpacity: 0.0
        });
        //向地图上添加面
        map.addOverLay(polygon);
        addPolygonClick();

	}

	function centerAndZoom(lng,lat){
		map.centerAndZoom(new T.LngLat(lng, lat), zoom);
		//map.centerAndZoom(new T.LngLat(116.40575,39.87005), zoom);
	}

	function addPolygonClick() {
		//移除面的点击事件，防止多次注册
		removePolygonClick();
		//注册面的点击事件
		polygon.addEventListener("click", PolygonClick);
	}

        function removePolygonClick() {
            //移除面的点击事件
            polygon.removeEventListener("click", PolygonClick);
        }

        function PolygonClick(e) {
        	 //alert(e.lnglat.getLng()+","+e.lnglat.getLat());
        	 //getLocation(e.lnglat.getLng(),e.lnglat.getLat());
        	
             
             var u = navigator.userAgent;
            var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
            var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
            if (isAndroid)
            {
                    window.androidObject.androidMapClick(e.lnglat.lng+"",e.lnglat.lat+"");
            }
            else if (isiOS)
            {
                
                window.webkit.messageHandlers.AppModel.postMessage({'operation':'clickPoint','JingDu':e.lnglat.getLng()+"",'WeiDu':e.lnglat.getLat()+""});
            }


        }
    function setPhoneLocation(locationStr){
       //进行定位显示
      // var lo = new T.Geolocation();
      if(marker)
      {
       map.removeOverLay(marker);
      }
                 
     //  marker = new T.Marker(e.lnglat);
     var lnglat = locationStr.split(',');
     var lng = lnglat[0];
     //alert(lng);
     var lat = lnglat[1];
     marker = new T.Marker(new T.LngLat(lng, lat));
      map.addOverLay(marker);
    }

     function createButton(html, title, className, container, csstext) {
            var link = document.createElement("a");
            if (container) {
                container.appendChild(link);
            }
            link.innerHTML = html;
            link.title = title;
            link.style.cssText = csstext;
            return link;
        }

</script>
</head>
<body onLoad="onLoad()">
	<div id="mapDiv" ></div>
</body>
</html>
